package com.xmutca.sso.api.manager.service;

import com.xmutca.core.common.Receipt;
import com.xmutca.core.common.Result;
import com.xmutca.core.common.Results;
import com.xmutca.sso.api.Role;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.List;
import java.util.Map;

/**
 * @author: 彭伟煌(pengweihuang@xmutca.com)
 * @create: 2016-08-27 22:46
 */
public interface RoleService {

    /**
     * 新增角色
     * @param role
     * @return
     */
    Receipt add(Role role, List<Integer> permissions);

    /**
     * 删除角色
     * @param id
     * @return
     */
    Receipt del(Integer id);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    Receipt batchDel(List<Integer> ids);

    /**
     * 更新角色
     * @param role
     * @return
     */
    Receipt update(Role role, List<Integer> permissions);

    /**
     * 读取角色
     * @param menuId
     * @return
     */
    Result<Role> get(Integer ids);

    /**
     * 查询角色
     * @param current
     * @param pageSize
     * @param paramMap
     * @return
     */
    Results<Role> query(@Min(value = 1, message = "页数最小为1") int current, @Max(value = 50, message = "条数最大为50条") int pageSize, Map<String, Object> paramMap);
}
